package text;

import java.lang.reflect.Array;
import java.util.*;

/*冒泡排序*/
public class maopao2 {
    public static void main(String[] args) {
        array();
    }
    public static <T> void array(){
        Scanner scanner = new Scanner(System.in);
        int z = scanner.nextInt();
        Random random = new Random();
        int[] values = new int[z];
        for (int x = 0;x < values.length;x++){
            values[x] = random.nextInt(1000);
        }
        System.out.println("数组原样"+Arrays.toString(values));
        Set<String> set = new HashSet(Arrays.asList(values));
        String[] value = new String[]{};
       set.toArray(value);
        int a = 1;
        for (int i = 0;i <values.length;i++) {
            //定义一个布尔类型的变量，标记数组是否已达到有序状态
            boolean flag = true;
            //内层循环：每一趟循环都从数列的当前两个元素开始比较，比较到无序数组的最后
            for (int j = 0; j <values.length - 1 - i ; j++) {
                //如果前一个元素大于后一个元素，则交换两元素的值；
                if (values[j] > values[j + 1]) {
                   int temp = values[j];
                    values[j] = values[j + 1];
                    values[j + 1] = temp;
                    //本趟发生了表明该数组本趟处于无序状态，需要继续比较
                    flag = false;
                }
            }
            System.out.println("第"+a+"趟："+Arrays.toString(values));
            a++;
            //根据标记量的值判断数组是否有序，如果有序，则退出；无序，则继续循环
            if (flag) {
                break;
            }
        }
        System.out.println("排序后"+Arrays.toString(values));
        System.out.println("排序后的数组的大小"+values.length);
       /* int s = 0;
        for (int i = 0;i<values.length; i++){
            for (int j = 1;j<values.length;j++){
                if (values[j] == values[j-1]){
                    value[i] = values[j];
                }else {
                    break;
                }
            }
        }*/
        System.out.println("去重后"+Arrays.toString(value));
        System.out.println("去重后的数组的大小"+value.length);

    }
}
